#include <cstdio>
#include <fstream>
#include <sstream>
using namespace std;

bool str_is_digit(char *substr){
    printf("sub str is %s ", substr);
    return isdigit(*substr);
}

int main(){
//    // 读入和写入的文件
//    ifstream fin("/home/find/ddown/testin");
//    char c;
//    while ((c = fin.get())!=EOF){
//        if(c == '\n'){
//            printf("line feed");
//        }
//        printf("%c ",c);
//    }
    int a = 118999;
    stringstream strm;
    strm<<"";
    strm.clear();
    strm<<hex<<a;
    printf("%s", strm.str().c_str());
    return 1;


}


//void work(char *line, int poc) {
//    /**address[j] */
//    long long *address[MAX_TILE_NUMBER];
//    for (int j = 0; j < MAX_TILE_NUMBER; ++j) {
//        // bug: 过小的设置address的大小。
//        address[j] = (long long *) malloc(sizeof(long long) * (MAX_LINE_BYTES>>3));
//    }
//    /** 每个tile对应的地址的个数*/
//    int len_address_tile[MAX_TILE_NUMBER];
////    memset(len_address_tile, 0, sizeof(int) * MAX_TILE_NUMBER);
//    // 一行就是一个poc
//
////    printf(next_token(line, "tile"));
//    // 因为不是拷贝，是指针，所以line的内容实际上也被改变了
//    char *strings[MAX_TILE_NUMBER_IN_LINE];
//    strings[0] = line;
//    int i;
//    for (i = 1; i < MAX_TILE_NUMBER_IN_LINE; i++) {
//        strings[i] = next_token(strings[i - 1], "tile");
//        if (!strings[i]) {
//            break;
//        }
//        // 处理tile的序号
//        char *s = strings[i];
//        /** 找到下一个空格的位置*/
//        unsigned long white_space_index = strchr(s, ' ') - s;
//        // 转换开头的tile的index
//        int tile_index = atoi(s);
//        // 去掉已经转换的index和空格
//        *s = 0;
//        s += white_space_index + 1;
//        strings[i] = s;
//        // 记录已经转换的tile
//        string_to_tile[i] = tile_index;
//
//
//    }
//
//
//    // TODO:如果打印出的tile字符串数量超过了 MAX_TILE_NUMBER_IN_LINE ，那么就增加
//    if (strings[i]) {
//    }
//    // 去掉最后的L1 missrate等输出
//    i--;
//    next_token(strings[i], "L1 miss");
//    int cur_tile_number_inline = i;
////    printf("curtilenum %d", cur_tile_number_inline);
////    for (int j = 0; j < 7; ++j) {
////        if(strings[j])
////            printf(" df%s\n", strings[j]);
////    }
//
//    // 将处理好的字符串拼接到address数组里。原数据里可能出现多个tile0，但是address数组里只有一个。
//    char *p;
//    int len_pointer, tile_index, max_tile_index = 0;
//    for (int l = 1; l <= cur_tile_number_inline; ++l) {
//        p = strings[l];
//        len_pointer = strlen(p);
//        tile_index = string_to_tile[l];
//        max_tile_index = max(max_tile_index, tile_index);
//        // 分别汇总到对应的tile里。最后有个空格
//        //len_address_tile 是len，也就是说len的index上是没存着的。
//        while (len_pointer > (p - strings[l] + 1)) {
//            address[tile_index][len_address_tile[tile_index]] = strtol(p, &p, 16);
//            len_address_tile[tile_index]++;
//        }
//    }
//
////    for (int n = 0; n < cur_tile_number_inline; ++n) {
////        printf("tile %d : ", n);
////        for (int j = 0; j < len_address_tile[n]; ++j) {
////            printf("%lx ", address[n][j]);
////        }
////        printf("\n");
////    }
//
//    // shuffle 写到不同的文件，通过cat合并
//    // 先写4个tile一起进行循环的
//    int left[max_tile_index + 2];
//    // 未初始化造成初值混乱
//    memset(left, 0, sizeof(int) * (max_tile_index + 2));
//    for (int m = 0; m <= max_tile_index; m += PARALLEL_TILE) {
//        //不整除时，最后一次的循环范围变小。
//        int circle_len = m > max_tile_index ? (max_tile_index + 1) % PARALLEL_TILE : PARALLEL_TILE;
//        int sum_num_address = 0;
//        for (int j = 0; j < circle_len; ++j) {
//            sum_num_address += len_address_tile[m + j];
//        }
//        int rand_index;
//        while (sum_num_address > 0) {
//            rand_index = rand() % circle_len;
//            if (len_address_tile[m + rand_index] > left[m + rand_index]) {
////                cout.setf(ios::hex);           //设置以十六进制输出的状态
//                fout << "l " << hex << address[m + rand_index][left[m + rand_index]] << endl;         //以十六进制形式输出a
////                cout.unsetf(ios::hex);
//                left[m + rand_index]++;
//                sum_num_address--;
//            }
//        }
//
//
//    }
//
//    //释放
//    for (int k = 0; k < MAX_TILE_NUMBER; ++k) {
//        free(address[k]);
//    }
//}